1. Field of the Invention
The present invention is directed generally to Viterbi detectors, and, more particularly, to a detector circuit with a pipelined look-up of squared errors.
2. Description of the Background
In magnetic recording devices, digital data is converted into a signal that is recorded by a write head on a magnetic medium, such as a computer disk or a magnetic-coated tape. When the data is read from the magnetic medium by a read head, the data is distorted due to the presence of additive white Gaussian noise, jitter, and intersymbol interference (ISI). These distortions may also be present in a waveform that is transmitted through a communication channel for demodulation, equalization and detection by a receiver.
A reproduction equalizer is typically employed in magnetic recording systems and communication channels to shape the received waveform such that the effects of distortion due to noise and ISI are minimized. In addition, equalization can be used to shape the overall channel response to have a controlled nonzero ISI. A common type of detector used for decoding the transmitted symbols after they are corrupted by a controlled ISI pattern and noise is a Viterbi detector. A Viterbi detector employs the Viterbi Algorithm, which was first proposed as an algorithm for decoding convolutional codes in A. J. Viterbi, "Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm", IEEE Trans. Inform. Theory, Vol. IT-13, No. 2, pp. 260-69, April 1967. A seminal discussion of the merits of the application of the Viterbi Algorithm to digital communications signal detection can be found in G. D. Forney, "The Viterbi Algorithm", Proceedings of the IEEE, Vol. 61, No. 3, pp. 268-78, March 1973.
After equalization, the overall magnetic recording channel functions like a convolutional coder. One common equalization target for the controlled ISI is called partial response ("PR") coding. PR coding is a type of convolutional coding in which one of a number of output signals is chosen in response to each bit of input data. The choice is made based on the current state of the encoder and the input bit. Thus, the input data is distributed over a greater number of symbols when encoded. A Viterbi detector must be able to determine whether the data sequence that is received is the same as the sequence that was encoded by the PR encoder.
A common Viterbi detection routine, termed "maximum likelihood" ("ML") detection, uses a trellis arrangement to compare a received sequence of data with all possible permitted outcomes of the data by examining the distances along paths in the trellis of the values of the reproduced signals assuming no noise (target values) with respect to the actual received sequence. The trellis is arranged such that a traverse of the nodes and edges of the trellis represents one or more responses of the PR encoder to a sequence of input data. The distance traversed is defined as the minimum sum of the squared differences between sequences of signals assuming no noise (target values) and the actual received sequence. The minimum sum of the squared differences results from two paths that diverge from a common state on a trellis and converge to a common state.
A Viterbi detector uses the maximum likelihood trellis arrangement by projecting the possible states of the encoder onto the trellis. The detector traverses the paths through the trellis and selects the paths with the smallest cumulative distance, which are the most likely, or probable, paths. The paths that are less likely are discarded.
It is typical for a Viterbi detector to select a short, noiseless PR target of length N and to equalize the data storage channel to match the target because the number of trellis nodes is 2.sup.N-1. To eliminate the squaring, the target is usually chosen to have values of 0, +1, -1, +2, or -2. If the noiseless values are from the set {-2, -1, 0, 1, 2}, then a simplification for computing and comparing squared errors can be realized by removing the input signal squared term common to all squared errors at a given sample time. In this way, the squaring of the difference is reduced to a shift and an add or a subtract. In that case each trellis node requires only an add/compare/select ("ACS") unit. Because of the simplicity of the targets, they can be built into the ACS unit of the Viterbi detector with little or no penalty in speed or die area. However, there is a penalty in terms of error rate that is caused by using a linear equalizer to force the binary data storage channel response to fit into the target response. The use of generalized target values for the trellis requires a large number of computations, including multiplications, by the detector circuit such that it is difficult to operate such detectors in real time.
Therefore, there is a need for a detector circuit that uses generalized target values for the trellis and can thus adapt to the natural response of the actual binary data storage channel with little or no penalty in speed or die area. It would even be desirable to have these generalized response values be a nonlinear function of the N transmitted symbols. Such a detector circuit will require less equalization and result in a lower error rate.